Detecting Software Patterns using Formal Concept Analysis
نویسندگان
چکیده
Redocumentation and design recovery are two important areas of reverse engineering. Detection of recurring organizations of classes and communicating objects, called Software Patterns, supports this process. Many approaches to detect Software Patterns have been published in the past years. Most of these approaches need a pattern library as reference. Personal coding style and domain specific requirements lead to creating new patterns or adapting existing ones and make those approaches fail. The second problem is that the found patterns of those methods are presented without connection to the other patterns. To gain an overview of the whole system and its mechanisms, we propose to set the patterns in relation each other. Our work shows a method to detect Software Patterns using Formal Concept Analysis (FCA). The advantage of this approach is that no reference library is needed and the results are set in relation each other. FCA is a mathematical theory which detects the presence of groups of classes which instantiate a common, repeated pattern. Those found patterns are presented in a lattice, a partial order relation among the patterns, which allows us to explore the pattern which are in relation to them. We implemented a prototype tool ConAn PaDi which navigates with the Fish Eye View technique over the patterns. For validation we applied this tool to three mid-sized Smalltalk applications.
منابع مشابه
KARaCAs: Knowledge Acquisition with Repertory Grids and Formal Concept Analysis for Dialog System Construction
We describe a new knowledge acquisition tool that enabled us to develop a dialog system recommending software design patterns by asking critical questions. This assistance system is based on interviews with experts. For the interviews we adopted the repertory grid method and integrated formal concept analysis. The repertory grid method stimulates the generation of common and differentiating att...
متن کاملDetecting Patterns in Object-Oriented Source Code - A Case Study
Pattern detection methods discover recurring solutions in a system’s implementation, for example design patterns in object-oriented source code. Usually this is done with a pattern library. This has the disadvantage that the precise implementation of the patterns must be known in advance. The method used in our case study does not have this disadvantage. It uses a mathematical technique called ...
متن کاملUsing Formal Concept Analysis for Discovering Knowledge Patterns
Design patterns are used in software engineering for guiding code design: they play the role of models to be followed for producing code of better quality. In the same way, knowledge patterns are introduced in knowledge engineering as ontology components that can be used as models and reused as ontology design patterns (ODPs) in ontology engineering. Accordingly, we present in this paper the us...
متن کاملIdentifying the software and their families using the exploration techniques of sequential patterns in dynamic analysis
Nowadays, crypto-ransomware is considered as one of the most threats in cybersecurity. Crypto ransomware removes data access by encrypting valuable data and requests a ransom payment to allow data decryption. As ransomware is still new in the field of cybersecurity, there are few pieces of research focusing on detecting ransomware samples. Most published works considered System File and process...
متن کاملHuman-Centered CBR: Integrating Case-Based Reasoning with Knowledge Construction and Extension
Maximum Likelihood Hebbian Learning Based Retrieval Method for CBR Systems p. 107 An Evaluation of the Usefulness of Case-Based Explanation p. 122 Adaptation Guided Retrieval Based on Formal Concept Analysis p. 131 Club [actual symbol not reproducible] (Trefle): A Use Trace Model p. 146 Case-Based Plan Recognition in Computer Games p. 161 Solution Verification in Software Design: A CBR Approach...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003